<?php
// $showfolder-Variable: Zeigt auf den ausgewaehlten Ordner
if(gpcGet("folder","",2)) {
  $showfolder = gpcGet("folder");
  if($showfolder[strlen($showfolder)-1]!="/" && $showfolder[strlen($showfolder)-1]!="\\") {
    $showfolder .= "/";
  }
  // Prueft Existenz von $showfolder, wenn nicht vorhanden, gehe ins Standardverzeichnis
  if(!is_dir($media_dir.$showfolder)) {
    $showfolder = "";
  }
}

// Bearbeite $showfolder-Variable, Fuehre einige Pruefungen durch

// Wandle Backshlashes in Slashes um
$showfolder = str_replace("\\", "/", $showfolder);

// Pruefe auf Hackversuche durch ..
if(preg_match("|\.\.|", $showfolder) >= 1) {
  // Melde Hackversuch
  $glog->add("hack", "User '".$_SESSION['user']."' tried to get access to folder ".$showfolder);
  
  // Setzte $showfolder-Variable auf das Root-Verzeichnis
  $showfolder = "";
}

// Definiere Variablen
$showfoldera = array();
$media_upper = "";
$media_upper_possible = false;

// Ersetze doppelte Slashes durch einfache
$showfolder = str_replace("//", "/", $showfolder);

if(!empty($showfolder)) {
  // Sorge dafuer, dass vorne und hinten keine Slashes sind
  if($showfolder[0]=="/") {
    $showfolder=substr($showfolder, 1);
  }
  if($showfolder[strlen($showfolder)-1]=="/") {
    $showfolder=substr($showfolder, 0, strlen($showfolder)-1);
  }
}

if(!empty($showfolder) && !in_array($showfolder, array(".", "/", "./", "/.", "/./"))) {
  // Eine Verzeichnisebene hoeher ist moeglich
  $media_upper_possible = true;
  
  // Splite die Variable $showfolder auf
  $showfoldera = explode("/", $showfolder);
  
  // Durchlaufe Array
  for($i=0; $i<count($showfoldera)-1; $i++) {
    $media_upper .= "/".$showfoldera[$i];
  }
}

// Pruefe auf Schlussslashes in den Variablen $media_upper und $showfolder
if(!empty($media_upper) && $showfolder[strlen($media_upper)-1]!="/") {
  $media_upper .= "/";
}
if(!empty($showfolder) && $showfolder[strlen($showfolder)-1]!="/") {
  $showfolder .= "/";
}
?>